<?php
/**
 * Map24LocationService class file
 * 
 * @author    {author}
 * @copyright {copyright}
 * @package   {package}
 */

/**
 * RequestHeader.CustomerKeyValuePair class
 */
if ( !class_exists('RequestHeaderCustomerKeyValuePair') )
{
require_once 'RequestHeader.CustomerKeyValuePair.php5';
}
/**
 * ResponseHeader class
 */
if ( !class_exists('ResponseHeader') )
{
require_once 'ResponseHeader.php5';
}
/**
 * Map24LocationLayer class
 */
if ( !class_exists('Map24LocationLayer') )
{
require_once 'Map24LocationLayer.php5';
}
/**
 * GetLocationLayersResponse class
 */
if ( !class_exists('GetLocationLayersResponse') )
{
require_once 'GetLocationLayersResponse.php5';
}
/**
 * RequestHeader class
 */
if ( !class_exists('RequestHeader') )
{
require_once 'RequestHeader.php5';
}
/**
 * GetLocationLayersRequest class
 */
if ( !class_exists('GetLocationLayersRequest') )
{
require_once 'GetLocationLayersRequest.php5';
}
/**
 * Property class
 */
if ( !class_exists('Property') )
{
require_once 'Property.php5';
}
/**
 * Map24Location class
 */
if ( !class_exists('Map24Location') )
{
require_once 'Map24Location.php5';
}
/**
 * ReadLocationsResponse class
 */
if ( !class_exists('ReadLocationsResponse') )
{
require_once 'ReadLocationsResponse.php5';
}
/**
 * Address class
 */
if ( !class_exists('Address') )
{
require_once 'Address.php5';
}
/**
 * ReadLocationsRequest class
 */
if ( !class_exists('ReadLocationsRequest') )
{
require_once 'ReadLocationsRequest.php5';
}
/**
 * GeocodedAddress.Quality class
 */
if ( !class_exists('GeocodedAddressQuality') )
{
require_once 'GeocodedAddress.Quality.php5';
}
/**
 * Coordinate class
 */
if ( !class_exists('Coordinate') )
{
require_once 'Coordinate.php5';
}
/**
 * GeocodedAddress.Alternative class
 */
if ( !class_exists('GeocodedAddressAlternative') )
{
require_once 'GeocodedAddress.Alternative.php5';
}
/**
 * GeocodedAddressWithLocations class
 */
if ( !class_exists('GeocodedAddressWithLocations') )
{
require_once 'GeocodedAddressWithLocations.php5';
}
/**
 * FindByPointsResponse class
 */
if ( !class_exists('FindByPointsResponse') )
{
require_once 'FindByPointsResponse.php5';
}
/**
 * CoordinateAndAddress class
 */
if ( !class_exists('CoordinateAndAddress') )
{
require_once 'CoordinateAndAddress.php5';
}
/**
 * FindByPointsRequest class
 */
if ( !class_exists('FindByPointsRequest') )
{
require_once 'FindByPointsRequest.php5';
}
/**
 * CoordinatesArray class
 */
if ( !class_exists('CoordinatesArray') )
{
require_once 'CoordinatesArray.php5';
}
/**
 * PolygonWithLocations class
 */
if ( !class_exists('PolygonWithLocations') )
{
require_once 'PolygonWithLocations.php5';
}
/**
 * FindInPolygonsResponse class
 */
if ( !class_exists('FindInPolygonsResponse') )
{
require_once 'FindInPolygonsResponse.php5';
}
/**
 * FindInPolygonsRequest class
 */
if ( !class_exists('FindInPolygonsRequest') )
{
require_once 'FindInPolygonsRequest.php5';
}
/**
 * GeocodedAddress class
 */
if ( !class_exists('GeocodedAddress') )
{
require_once 'GeocodedAddress.php5';
}
/**
 * RouteViaPoint class
 */
if ( !class_exists('RouteViaPoint') )
{
require_once 'RouteViaPoint.php5';
}
/**
 * RouteSegmentDirectionHint class
 */
if ( !class_exists('RouteSegmentDirectionHint') )
{
require_once 'RouteSegmentDirectionHint.php5';
}
/**
 * RouteSegmentStreetClass class
 */
if ( !class_exists('RouteSegmentStreetClass') )
{
require_once 'RouteSegmentStreetClass.php5';
}
/**
 * RouteSegmentDescription class
 */
if ( !class_exists('RouteSegmentDescription') )
{
require_once 'RouteSegmentDescription.php5';
}
/**
 * RouteSegmentTMCHint class
 */
if ( !class_exists('RouteSegmentTMCHint') )
{
require_once 'RouteSegmentTMCHint.php5';
}
/**
 * MapCoordinatesArray class
 */
if ( !class_exists('MapCoordinatesArray') )
{
require_once 'MapCoordinatesArray.php5';
}
/**
 * Map24RouteSegment class
 */
if ( !class_exists('Map24RouteSegment') )
{
require_once 'Map24RouteSegment.php5';
}
/**
 * Map24Route class
 */
if ( !class_exists('Map24Route') )
{
require_once 'Map24Route.php5';
}
/**
 * FindInRouteCorridorResponse class
 */
if ( !class_exists('FindInRouteCorridorResponse') )
{
require_once 'FindInRouteCorridorResponse.php5';
}
/**
 * RouteCalculationMode class
 */
if ( !class_exists('RouteCalculationMode') )
{
require_once 'RouteCalculationMode.php5';
}
/**
 * RoutingRequestVehicleType class
 */
if ( !class_exists('RoutingRequestVehicleType') )
{
require_once 'RoutingRequestVehicleType.php5';
}
/**
 * RoutingRequestSpeedClassification class
 */
if ( !class_exists('RoutingRequestSpeedClassification') )
{
require_once 'RoutingRequestSpeedClassification.php5';
}
/**
 * CalculateRouteRequest.ViaPointProperty class
 */
if ( !class_exists('CalculateRouteRequestViaPointProperty') )
{
require_once 'CalculateRouteRequest.ViaPointProperty.php5';
}
/**
 * CalculateRouteRequest.ViaPoint class
 */
if ( !class_exists('CalculateRouteRequestViaPoint') )
{
require_once 'CalculateRouteRequest.ViaPoint.php5';
}
/**
 * FindInRouteCorridorRequest class
 */
if ( !class_exists('FindInRouteCorridorRequest') )
{
require_once 'FindInRouteCorridorRequest.php5';
}
/**
 * Surf class
 */
if ( !class_exists('Surf') )
{
require_once 'Surf.php5';
}
/**
 * ComponentControl class
 */
if ( !class_exists('ComponentControl') )
{
require_once 'ComponentControl.php5';
}
/**
 * ControlComponent class
 */
if ( !class_exists('ControlComponent') )
{
require_once 'ControlComponent.php5';
}
/**
 * SetMapView.ClippingWidth class
 */
if ( !class_exists('SetMapViewClippingWidth') )
{
require_once 'SetMapView.ClippingWidth.php5';
}
/**
 * SetHomeView class
 */
if ( !class_exists('SetHomeView') )
{
require_once 'SetHomeView.php5';
}
/**
 * SetMapView class
 */
if ( !class_exists('SetMapView') )
{
require_once 'SetMapView.php5';
}
/**
 * ModifyMapView.Control class
 */
if ( !class_exists('ModifyMapViewControl') )
{
require_once 'ModifyMapView.Control.php5';
}
/**
 * ZoomRectangle class
 */
if ( !class_exists('ZoomRectangle') )
{
require_once 'ZoomRectangle.php5';
}
/**
 * ModifyMapView class
 */
if ( !class_exists('ModifyMapView') )
{
require_once 'ModifyMapView.php5';
}
/**
 * DeclareMap24LocationsLayer class
 */
if ( !class_exists('DeclareMap24LocationsLayer') )
{
require_once 'DeclareMap24LocationsLayer.php5';
}
/**
 * DeclareLayer class
 */
if ( !class_exists('DeclareLayer') )
{
require_once 'DeclareLayer.php5';
}
/**
 * RemoveLayer class
 */
if ( !class_exists('RemoveLayer') )
{
require_once 'RemoveLayer.php5';
}
/**
 * Control class
 */
if ( !class_exists('Control') )
{
require_once 'Control.php5';
}
/**
 * ControlLayer class
 */
if ( !class_exists('ControlLayer') )
{
require_once 'ControlLayer.php5';
}
/**
 * Color class
 */
if ( !class_exists('Color') )
{
require_once 'Color.php5';
}
/**
 * PaintRule.DrawPhase class
 */
if ( !class_exists('PaintRuleDrawPhase') )
{
require_once 'PaintRule.DrawPhase.php5';
}
/**
 * PaintRuleSTROKE.Details class
 */
if ( !class_exists('PaintRuleSTROKEDetails') )
{
require_once 'PaintRuleSTROKE.Details.php5';
}
/**
 * PaintRuleSTROKE class
 */
if ( !class_exists('PaintRuleSTROKE') )
{
require_once 'PaintRuleSTROKE.php5';
}
/**
 * MGenericProperty class
 */
if ( !class_exists('MGenericProperty') )
{
require_once 'MGenericProperty.php5';
}
/**
 * MapObjectCustomSettings class
 */
if ( !class_exists('MapObjectCustomSettings') )
{
require_once 'MapObjectCustomSettings.php5';
}
/**
 * Font class
 */
if ( !class_exists('Font') )
{
require_once 'Font.php5';
}
/**
 * MapObjectOrientation class
 */
if ( !class_exists('MapObjectOrientation') )
{
require_once 'MapObjectOrientation.php5';
}
/**
 * PaintRuleINSCRIPTION.Details class
 */
if ( !class_exists('PaintRuleINSCRIPTIONDetails') )
{
require_once 'PaintRuleINSCRIPTION.Details.php5';
}
/**
 * PaintRuleINSCRIPTION class
 */
if ( !class_exists('PaintRuleINSCRIPTION') )
{
require_once 'PaintRuleINSCRIPTION.php5';
}
/**
 * DeclareMap24RouteObject class
 */
if ( !class_exists('DeclareMap24RouteObject') )
{
require_once 'DeclareMap24RouteObject.php5';
}
/**
 * DeclareMap24TrafficInfoObject class
 */
if ( !class_exists('DeclareMap24TrafficInfoObject') )
{
require_once 'DeclareMap24TrafficInfoObject.php5';
}
/**
 * PaintRuleFILL.Details class
 */
if ( !class_exists('PaintRuleFILLDetails') )
{
require_once 'PaintRuleFILL.Details.php5';
}
/**
 * PaintRuleFILL class
 */
if ( !class_exists('PaintRuleFILL') )
{
require_once 'PaintRuleFILL.php5';
}
/**
 * MapObjectEventID class
 */
if ( !class_exists('MapObjectEventID') )
{
require_once 'MapObjectEventID.php5';
}
/**
 * MapObjectEventModifier class
 */
if ( !class_exists('MapObjectEventModifier') )
{
require_once 'MapObjectEventModifier.php5';
}
/**
 * MapObjectEvent class
 */
if ( !class_exists('MapObjectEvent') )
{
require_once 'MapObjectEvent.php5';
}
/**
 * DeclareMap24Polygon class
 */
if ( !class_exists('DeclareMap24Polygon') )
{
require_once 'DeclareMap24Polygon.php5';
}
/**
 * PaintRuleICONS.Details class
 */
if ( !class_exists('PaintRuleICONSDetails') )
{
require_once 'PaintRuleICONS.Details.php5';
}
/**
 * PaintRuleICONS class
 */
if ( !class_exists('PaintRuleICONS') )
{
require_once 'PaintRuleICONS.php5';
}
/**
 * DeclareMap24Polyline class
 */
if ( !class_exists('DeclareMap24Polyline') )
{
require_once 'DeclareMap24Polyline.php5';
}
/**
 * DeclareMap24Oval class
 */
if ( !class_exists('DeclareMap24Oval') )
{
require_once 'DeclareMap24Oval.php5';
}
/**
 * DeclareMap24Label.Anchor class
 */
if ( !class_exists('DeclareMap24LabelAnchor') )
{
require_once 'DeclareMap24Label.Anchor.php5';
}
/**
 * DeclareMap24Label class
 */
if ( !class_exists('DeclareMap24Label') )
{
require_once 'DeclareMap24Label.php5';
}
/**
 * CanvasReferencePoint class
 */
if ( !class_exists('CanvasReferencePoint') )
{
require_once 'CanvasReferencePoint.php5';
}
/**
 * DeclareMap24HTMLObject class
 */
if ( !class_exists('DeclareMap24HTMLObject') )
{
require_once 'DeclareMap24HTMLObject.php5';
}
/**
 * Bounds class
 */
if ( !class_exists('Bounds') )
{
require_once 'Bounds.php5';
}
/**
 * Map24LocationDrawHint class
 */
if ( !class_exists('Map24LocationDrawHint') )
{
require_once 'Map24LocationDrawHint.php5';
}
/**
 * Map24LocationPaintRule.LogoURLTable class
 */
if ( !class_exists('Map24LocationPaintRuleLogoURLTable') )
{
require_once 'Map24LocationPaintRule.LogoURLTable.php5';
}
/**
 * Map24LocationPaintRule.SymbolIDTable class
 */
if ( !class_exists('Map24LocationPaintRuleSymbolIDTable') )
{
require_once 'Map24LocationPaintRule.SymbolIDTable.php5';
}
/**
 * Map24LocationPaintRule class
 */
if ( !class_exists('Map24LocationPaintRule') )
{
require_once 'Map24LocationPaintRule.php5';
}
/**
 * DeclareMap24Location class
 */
if ( !class_exists('DeclareMap24Location') )
{
require_once 'DeclareMap24Location.php5';
}
/**
 * DeclareMap24Floorplan class
 */
if ( !class_exists('DeclareMap24Floorplan') )
{
require_once 'DeclareMap24Floorplan.php5';
}
/**
 * Anchor class
 */
if ( !class_exists('Anchor') )
{
require_once 'Anchor.php5';
}
/**
 * DeclareCanvasLocation class
 */
if ( !class_exists('DeclareCanvasLocation') )
{
require_once 'DeclareCanvasLocation.php5';
}
/**
 * DeclareCanvasLabel class
 */
if ( !class_exists('DeclareCanvasLabel') )
{
require_once 'DeclareCanvasLabel.php5';
}
/**
 * DeclareMap24SnailTrail class
 */
if ( !class_exists('DeclareMap24SnailTrail') )
{
require_once 'DeclareMap24SnailTrail.php5';
}
/**
 * DeclareMapObjectGroup class
 */
if ( !class_exists('DeclareMapObjectGroup') )
{
require_once 'DeclareMapObjectGroup.php5';
}
/**
 * RemoveMapObject class
 */
if ( !class_exists('RemoveMapObject') )
{
require_once 'RemoveMapObject.php5';
}
/**
 * ControlMapObject class
 */
if ( !class_exists('ControlMapObject') )
{
require_once 'ControlMapObject.php5';
}
/**
 * AssignMapObjectTemplate class
 */
if ( !class_exists('AssignMapObjectTemplate') )
{
require_once 'AssignMapObjectTemplate.php5';
}
/**
 * BasemapLayerPropertySet class
 */
if ( !class_exists('BasemapLayerPropertySet') )
{
require_once 'BasemapLayerPropertySet.php5';
}
/**
 * ControlBasemapLayerProperties class
 */
if ( !class_exists('ControlBasemapLayerProperties') )
{
require_once 'ControlBasemapLayerProperties.php5';
}
/**
 * XMLCommandWrapper class
 */
if ( !class_exists('XMLCommandWrapper') )
{
require_once 'XMLCommandWrapper.php5';
}
/**
 * Map24MRC class
 */
if ( !class_exists('Map24MRC') )
{
require_once 'Map24MRC.php5';
}
/**
 * ReadSingleLocationResponse class
 */
if ( !class_exists('ReadSingleLocationResponse') )
{
require_once 'ReadSingleLocationResponse.php5';
}
/**
 * ReadSingleLocationRequest class
 */
if ( !class_exists('ReadSingleLocationRequest') )
{
require_once 'ReadSingleLocationRequest.php5';
}

/**
 * Map24LocationService class
 * 
 *  
 * 
 * @author    {author}
 * @copyright {copyright}
 * @package   {package}
 */
class Map24LocationService {

  private $client;

  private $wsdl = null;

  /**
   *
   * @param MapTP-System the request should be executed on $server
   * @param Map24Id $mid
   * @param Map24SessionId $sid
   */ 
  public function __construct($server=null, $mid=null, $sid=null, $interface='map24/webservices1.5') {
    if($server==null || $mid==null || $sid==null){
      echo "ERROR: Not enough or invalid arguments! Unable to initialise SoapClient.";
    }
    else {
      $this->wsdl = "http://".$server."/".$interface."?wsdl=Map24LocationService";
      $this->client = new SoapClient($this->wsdl, array('location' => "http://".$server."/".$interface."?soap=Map24LocationService&mid=".$mid."&sid=".$sid, 'trace' => 1, 'exceptions' => 1));
    }
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param GetLocationLayersRequest $GetLocationLayersRequest
   * @return GetLocationLayersResponse
   */
  public function getLocationLayers(RequestHeader $RequestHeader, GetLocationLayersRequest $GetLocationLayersRequest) {
    return $this->client->getLocationLayers($RequestHeader, $GetLocationLayersRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param ReadLocationsRequest $ReadLocationsRequest
   * @return ReadLocationsResponse
   */
  public function readLocations(RequestHeader $RequestHeader, ReadLocationsRequest $ReadLocationsRequest) {
    return $this->client->readLocations($RequestHeader, $ReadLocationsRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param FindByPointsRequest $FindByPointsRequest
   * @return FindByPointsResponse
   */
  public function findByPoints(RequestHeader $RequestHeader, FindByPointsRequest $FindByPointsRequest) {
    return $this->client->findByPoints($RequestHeader, $FindByPointsRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param FindInPolygonsRequest $FindInPolygonsRequest
   * @return FindInPolygonsResponse
   */
  public function findInPolygons(RequestHeader $RequestHeader, FindInPolygonsRequest $FindInPolygonsRequest) {
    return $this->client->findInPolygons($RequestHeader, $FindInPolygonsRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param FindInRouteCorridorRequest $FindInRouteCorridorRequest
   * @return FindInRouteCorridorResponse
   */
  public function findInRouteCorridor(RequestHeader $RequestHeader, FindInRouteCorridorRequest $FindInRouteCorridorRequest) {
    return $this->client->findInRouteCorridor($RequestHeader, $FindInRouteCorridorRequest);
  }

  /**
   *  
   *
   * @param RequestHeader $RequestHeader
   * @param ReadSingleLocationRequest $ReadSingleLocationRequest
   * @return ReadSingleLocationResponse
   */
  public function readSingleLocation(RequestHeader $RequestHeader, ReadSingleLocationRequest $ReadSingleLocationRequest) {
    return $this->client->readSingleLocation($RequestHeader, $ReadSingleLocationRequest);
  }

}

?>
